import {makeAction} from '../util'

const SET_TAGS = 'SET_TAGS'
const SET_ACTION_TAG = 'SET_ACTION_TAG'
// state 用来存数据
const state = {
  tags: [], // 标签列表
  activeTag: '' // 选择的标签
}
// mutations 用来执行函数，来改变state的值
// 但是不能直接调用，需要actions的函数来调用
const mutations = {
  [SET_TAGS] (state, tags) {
    state.tags = tags
  },
  [SET_ACTION_TAG] (state, tag) {
    state.activeTag = tag
  }
}
// 函数是用来暴露在外的用来执行的
const actions = {
  setTags: makeAction(SET_TAGS),
  updateActiveTag: makeAction(SET_ACTION_TAG)
}
// 用户获取参数
const getters = {
  tags (state) {
    return state.tags
  },
  activeTag (state) {
    return state.activeTag
  }
}
export default {
  state,
  mutations,
  getters,
  actions
}
